/**
 * Copyright (C) 2009 aileron.cc
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */
package cc.aileron.text.model;

import static cc.aileron.commons.util.HtmlUtils.*;

import java.util.Date;

import cc.aileron.generic.Id;
import cc.aileron.generic.PrimitiveWrappers.StringSetAccessor;

/**
 * message
 * 
 * @author Aileron
 */
public class Message implements StringSetAccessor
{
    /**
     * @param value
     */
    @Override
    public void string(final String value)
    {
        this.string = value;
    }

    /**
     * @return html
     */
    public String toHtml()
    {
        return nl2br(escape(toString()));
    }

    /**
     * @return string
     */
    @Override
    public String toString()
    {
        return string != null ? string : "";
    }

    /**
     * default constractor
     */
    public Message()
    {
        this.uriKey = new UriKey();
    }

    /**
     * @param uriKey
     */
    public Message(final UriKey uriKey)
    {
        this.uriKey = uriKey;
    }

    /**
     * created-at
     */
    public Date createdAt;

    /**
     * id
     */
    public Id id;

    /**
     * updated-at
     */
    public Date updatedAt;

    /**
     * uri-key
     */
    public UriKey uriKey;

    /**
     * string
     */
    private String string;
}
